srvMap.add('queryBehaviorInfo','','front/sh/behavior!execute?uid=queryBehaviorInfo');
var lastQueryParamObj={};	//最近一次查询param--用于查询和下载同条件

$(function() {
		
	//加载地市
	Util.loadUpInfo.initCityList();
	//加载景区类型
	Util.loadUpInfo.initRegionTypleList();
	//加载景区
	Util.loadUpInfo.initRegionList();
	//初始化时间
	initDataTime();
	//获取查询条件
	lastQueryParamObj = getParamsObj();	
	//行为方式分析
	queryBehaviorInfo(lastQueryParamObj);	
	//绑定查询事件
	$("#selBtn").on("click",function(){
		
		//获取界面参数
		var paramObj = {};
		paramObj = getParamObj(paramObj);
		//行为方式分析
		if(validateTime()){
			queryBehaviorInfo(paramObj);
			}else{
				alert('请设置查询时间！');
			}		
	});
	
});
/**
 * 时间校验
 * */
function validateTime(){
	var single=true;
	var monDate=$('#monthEnd').val();
	if(monDate==''){
		single=false;
	}
    return 	single;
	
	
}
/**
 * 
 * @Description : 行为分析
 * 
 * @author : heyl
 * @date : 2065年7月22日 下午15:01
 * 
 */
function queryBehaviorInfo(paramObj){
	//获取参数
	var par = "&cityId="+paramObj.cityId+"&regionId="+paramObj.regionId+"&regionType="+paramObj.regionType+"&selMonth="+paramObj.selMonth;
	//行为分析
	Util.ajax.postJsonSync(srvMap.get('queryBehaviorInfo'),par,function(json,status){
		if(status){
			if(json.object.travelTypeList.length>0){
			
			//交通方式分析
			var plane_num=parseFloat(json.object.travelTypeList[0].query_value2);
			var train_num=parseFloat(json.object.travelTypeList[1].query_value2);
			var bus_num=parseFloat(json.object.travelTypeList[2].query_value2);
			//计算交通方式为飞机、火车、汽车游客总和
			var total_num=plane_num+train_num+bus_num;
			if(total_num==0){
				var plane_pct=0.00+"%";
				var train_pct=0.00+"%";
				var bus_pct=0.00+"%";
			}else{
			var plane_pct=(plane_num*100/total_num).toFixed(2)+'%';
			var train_pct=(train_num*100/total_num).toFixed(2)+'%';
			var bus_pct=(bus_num*100/total_num).toFixed(2)+'%';
			}
			var plane_pct_="  "+plane_pct;
			$("#plane_width").css("width",plane_pct);		
			$("#plane_num").text((plane_num/10000).toFixed(2)+'万');			
			$("#plane_pct").text(plane_pct_);			
			$("#train_width").css("width",train_pct);		
			$("#train_num").text((train_num/10000).toFixed(2)+'万');			
			$("#train_pct").text(train_pct);			
			$("#bus_width").css("width",bus_pct);		
			$("#bus_num").text((bus_num/10000).toFixed(2)+'万');			
			$("#bus_pct").text(bus_pct);
			}
			
			//生成App分类分析图
			getAppTypeChart(json.object);
			//生成App使用分析图
			getAppChart(json.object);
			//生成访问网站分析分析图
			getWebAccessChart(json.object);
		}
		else{
			alert("查询数据失败！")
		}
		
	});
}

/**
 *
 * @Description : 生成App分类分析图
 *
 * @return void
 *
 * @author : heyl
 * @date : 2016年7月25日
 *
 */
function getAppTypeChart(result) {

	var name = result.AppTypeNameList;
	var value = result.AppTypeValueList;
	require.config({
	        paths: {
	            echarts:  CONTENT_PATH + '/common/js'
	    }
	});
	require(
	    [ 
			'echarts',
			'echarts/chart/bar' ,   
			'echarts/chart/line',
			'echarts/chart/pie'
	    ],
	    function (ec) { 
	   		var myChart = ec.init(document.getElementById("appType"),"macarons");
	   		
	   		// 同步执行  
            $.ajaxSettings.async = false;
	   		
	   		var option = {
			tooltip : {
		        trigger: 'axis',
		        formatter: "{a} <br/>{b} : {c} 万",
		        axisPointer : {            // 坐标轴指示器，坐标轴触发有效
		            type : 'shadow'        // 默认为直线，可选为：'line' | 'shadow'
		        }
		    },
	   			grid : {x:70,y:35,x2:30,y2:30},
	   		 title : {
	   			x: 70, 
	   			y: 10, 
	   		 textStyle: {
	             fontSize: 12,
	             color: '#c6c6c6'          // 主标题文字颜色
	         },
	   	        text: '用户数（人）'
	   	    },

			calculable: true,
	   	        xAxis: {
	   	        	axisLine:{lineStyle:{color:'rgba(208,208,208,1)'},width:0.2},
	   	        	splitLine:{
						show:false
					},
					splitArea:{show:false},
					splitLine:{show:false},
	   	        	type : 'category',
	   	        	data : name
	   	        },
	   	        yAxis: {
	   	        	axisLine:{lineStyle:{color:'rgba(208,208,208,1)'},width:0.2},
	   	        	splitLine:{
						show:true,
						lineStyle:{
							color:['rgba(232,232,232, 1)'],
							type:'dashed'
						}
					},
					splitArea:{show:false},
	   	        	type : 'value',
	   	        	axisLabel: {
	                    show: true,
	                    interval: 'auto',
	                    formatter: '{value}万'
	                }
	   	        },
	   	        series: [{
	   	        	name: 'APP分类分析',
	   	        	type: 'bar',
	   	        	itemStyle : {
    	                normal : {
    	                    label : {
    	                        show : true,
    	                        formatter : function (params) { 
    	                        	return params.value
    	                        }
    	                    },
    	   	        		color:'#71B9FF',
    	   	        		barBorderRadius:[0,0,0,0]
    	                }
    	            },
	   	        	barWidth : 18,
	   	        	data: value
	   	        }]
	   	    };

	   	    // 使用刚指定的配置项和数据显示图表。
	   	    myChart.setOption(option);
	    }
	); 
}

/**
*
* @Description : 生成访问网站分析图
*
* @return void
*
* @author : heyl
* @date : 2016年7月25日
*
*/
function getWebAccessChart(result) {

	var name = result.WebNameList;
	var value = result.WebValueList;
	require.config({
	        paths: {
	            echarts:  CONTENT_PATH + '/common/js'
	    }
	});
	require(
	    [ 
			'echarts',
			'echarts/chart/bar' ,   
			'echarts/chart/line',
			'echarts/chart/pie'
	    ],
	    function (ec) { 
	   		var myChart = ec.init(document.getElementById("webAccess"),"macarons");
	   		
	   		// 同步执行  
           $.ajaxSettings.async = false;
	   		
	   		var option = {
			tooltip : {
		        trigger: 'axis',
		        formatter: "{a} <br/>{b} : {c} 万",
		        axisPointer : {            // 坐标轴指示器，坐标轴触发有效
		            type : 'shadow'        // 默认为直线，可选为：'line' | 'shadow'
		        }
		    },
	   			grid : {x:70,y:35,x2:30,y2:30},
	   		 title : {
	   			x: 70, 
	   			y: 10, 
	   		 textStyle: {
	             fontSize: 12,
	             color: '#c6c6c6'          // 主标题文字颜色
	         },
	   	        text: '用户数（人）'
	   	    },
	   			
	   	        xAxis: {
	   	        	axisLine:{lineStyle:{color:'rgba(208,208,208,1)'},width:0.2},
	   	        	splitLine:{
						show:false
					},
					splitArea:{show:false},
					splitLine:{show:false},
	   	        	type : 'category',
	   	        	data : name
	   	        },
	   	        yAxis: {
	   	        	axisLine:{lineStyle:{color:'rgba(208,208,208,1)'},width:0.2},
	   	        	splitLine:{
						show:true,
						lineStyle:{
							color:['rgba(232,232,232, 1)'],
							type:'dashed'
						}
					},
					splitArea:{show:false},
	   	        	type : 'value',
	   	        	axisLabel: {
	                    show: true,
	                    interval: 'auto',
	                    formatter: '{value}万'
	                }
	   	        },
	   	        series: [{
	   	        	name: '访问网站分析',
	   	        	type: 'bar',
	   	        	itemStyle : {
   	                normal : {
   	                    label : {
   	                        show : true,
   	                        formatter : function (params) { 
   	                        	return params.value
   	                        }
   	                    },
   	   	        		color:'#FFD68E',
	   	        		barBorderRadius:[0,0,0,0]
   	                }
   	            },
	   	        	barWidth : 18,
	   	        	data: value
	   	        }]
	   	    };

	   	    // 使用刚指定的配置项和数据显示图表。
	   	    myChart.setOption(option);
	    }
	); 
}

/**
 *
 * @Description : 生成App使用分析图
 *
 * @return void
 *
 * @author : heyl
 * @date : 2016年7月25日
 *
 */
function getAppChart(result) {

	var name = result.AppNameList;
	var value = result.AppValueList;
	require.config({
	        paths: {
	            echarts:  CONTENT_PATH + '/common/js'
	    }
	});
	require(
	    [ 
			'echarts',
			'echarts/chart/bar' ,   
			'echarts/chart/line',
			'echarts/chart/pie'
	    ],
	    function (ec) { 
	   		var myChart = ec.init(document.getElementById("appUse"),"macarons");
	   		
	   		// 同步执行  
            $.ajaxSettings.async = false;
	   		
	   		var option = {
			tooltip : {
		        trigger: 'axis',
		        formatter: "{a} <br/>{b} : {c} 万",
		        axisPointer : {            // 坐标轴指示器，坐标轴触发有效
		            type : 'shadow'        // 默认为直线，可选为：'line' | 'shadow'
		        }
		    },
	   			grid : {x:70,y:35,x2:30,y2:30},
	   		 title : {
	   			x: 70, 
	   			y: 10, 
	   		 textStyle: {
	             fontSize: 12,
	             color: '#c6c6c6'          // 主标题文字颜色
	         },
	   	        text: '用户数（人）'
	   	    },
	   	        xAxis: {
	   	        	axisLine:{lineStyle:{color:'rgba(208,208,208,1)'},width:0.2},
	   	        	splitLine:{
						show:false
					},
					splitArea:{show:false},
					splitLine:{show:false},
	   	        	type : 'category',
	   	        	data : name
	   	        },
	   	        yAxis: {
	   	        	axisLine:{lineStyle:{color:'rgba(208,208,208,1)'},width:0.2},
	   	        	splitLine:{
						show:true,
						lineStyle:{
							color:['rgba(232,232,232, 1)'],
							type:'dashed'
						}
					},
					splitArea:{show:false},
	   	        	type : 'value',
	   	        	axisLabel: {
	                    show: true,
	                    interval: 'auto',
	                    formatter: '{value}万'
	                }
	   	        },
	   	        series: [{
	   	        	name: 'APP分析',
	   	        	type: 'bar',
	   	        	itemStyle : {
    	                normal : {
    	                    label : {
    	                        show : true,
    	                        formatter : function (params) { 
    	                        	return params.value
    	                        }
    	                    },
	   	        		color:'#58DCA3',
	   	        		barBorderRadius:[0,0,0,0]
    	                }
    	            },
	   	        	barWidth : 18,
	   	        	data: value
	   	        }]
	   	    };

	   	    // 使用刚指定的配置项和数据显示图表。
	   	    myChart.setOption(option);
	    }
	); 
}

/**
 * 
 * @Description : 初始化时间控件
 * @return void
 * 
 * @author : heyl
 * @date : 2015年12月10日 下午10:05
 * 
 */
function initDataTime() {
	
	var preMonth = getPreMonth(laydate.now());
	var preYear = laydate.now(-365).slice(0,7);
		
	var monthEnd = {
		elem: '#monthEnd',
		format: 'YYYY-MM',
		start:preMonth,
		min: preYear,
		max:preMonth, //最大日期
		istime: false,
		festival: true,
		istoday: false,
		choose: function(datas){
			//monthStart.max = datas; //结束日选好后，重置开始日的最大日期
	    }
	};
	
	laydate(monthEnd);
	
	//默认展示上月的数据
	$("#monthEnd").val(preMonth.slice(0,7));
}

/**
 * 获取paramObj
 * @param paramObj
 * @returns {Boolean}
 */
function getParamObj(paramObj){	
	paramObj.cityId = $('#citySelect span li').attr("d_value");	
	paramObj.regionType = $('#regionTypleSelect span li').attr("d_value");
	paramObj.regionId = $('#inputselect').val();
	paramObj.selMonth = $('#monthEnd').val().replace("-","");
	
//	if( paramObj.selMonth == null || paramObj.selMonth.length == 0 ){
//		alert("请选择月份！");
//		return false;
//	}
	
	//如果选择了regionId，则忽略类型参数
	/*if( paramObj.regionId == null || paramObj.regionId.length == 0 ){
		paramObj.regionType = $('#regionType').val();
	}*/

	return paramObj;
}

/**
 * 获取页面参数
 * @returns {String}
 */
function getParamsObj() {
	
	var paramObj = {};
	paramObj.cityId = $('#citySelect span li').attr("d_value");	
	paramObj.regionType = $('#regionTypleSelect span li').attr("d_value");
	paramObj.regionId = $('#inputselect').val();
	paramObj.selMonth = $('#monthEnd').val().replace("-","");
	
	//如果选择了regionId，则忽略类型参数
	/*if( paramObj.regionId == null || paramObj.regionId.length == 0 ){
		paramObj.regionType = $('#regionType').val();
	}*/
	
	return paramObj;
}

/**
 * 获取当前时间上一个月日期
 * @Description : 
 * 
 * @return void
 *
 * @author : heyl
 * @date : 2015年12月18日 下午5:40:08 
 *
 */
function getPreMonth(date) {
    var arr = date.split('-');
    var year = arr[0]; //获取当前日期的年份
    var month = arr[1]; //获取当前日期的月份
    var day = arr[2]; //获取当前日期的日
    var days = new Date(year, month, 0);
    days = days.getDate(); //获取当前日期中月的天数
    var year2 = year;
    var month2 = parseInt(month) - 1;
    if (month2 == 0) {
        year2 = parseInt(year2) - 1;
        month2 = 12;
    }
    var day2 = day;
    var days2 = new Date(year2, month2, 0);
    days2 = days2.getDate();
    if (day2 > days2) {
        day2 = days2;
    }
    if (month2 < 10) {
        month2 = '0' + month2;
    }
    var t2 = year2 + '-' + month2 + '-' + day2;
    return t2;
}